package com.gao.controller.rabbit;

import com.rabbitmq.client.*;

import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.concurrent.TimeoutException;

/**
 * @author gaofeng
 * @date 2022年09月05日 22:29
 */
public class WorkerQueueController {
    public static void main(String[] args) throws IOException, TimeoutException {
        Connection connection = MyChannelFactory.getConnection();
        // 4.创建channel
        Channel channel = connection.createChannel();
        /* 5.创建队列Queue
         (String var1, boolean var2, boolean var3, boolean var4, Map<String, Object> var5)
             var1:队列名称
             var2:是否持久化,是:mq重启之后,还在
             var3:是否独占,只能有一个消费者监听这个队列
             var4:是否自动删除,当没有consumer时,自动删除掉
             var5:参数
             如果没有名叫hello_rabbitmq的队列,则会创建
         */
        channel.queueDeclare("work_queues_rabbitmq", true, false, false, null) ;
        /*
         * 6.发送消息
         * (String var1, String var2, BasicProperties var3, byte[] var4)
         *  var1:交换机名称,简单模式下使用默认的
         *  var2:路由名称
         *  var3:配置信息
         *  var4:字节数据,真实的发送消息的数据
         */
        channel.basicPublish("", "work_queues_rabbitmq", null, "hello-rabbitmq~~~".getBytes(StandardCharsets.UTF_8));
        // 7.释放资源
        channel.close();
        connection.close();
    }
}
